const app = getApp()
const api = require('../../utils/api')

// 示例健康知识数据
const exampleKnowledgeData = [
  {
    _id: '1',
    title: '血糖管理的日常指南',
    summary: '了解如何通过日常饮食和运动来有效管理血糖水平，避免血糖波动。',
    category: '糖尿病预防',
    viewCount: 328,
    likeCount: 65,
    imageUrl: '',
    publishDate: '2023-10-15',
    isRecommended: true
  },
  {
    _id: '2',
    title: '健康饮食：控制糖尿病的关键',
    summary: '合理的饮食结构对于控制糖尿病至关重要，本文介绍低GI食物和均衡营养的重要性。',
    category: '饮食推荐',
    viewCount: 267,
    likeCount: 58,
    imageUrl: '',
    publishDate: '2023-09-28',
    isRecommended: true
  },
  {
    _id: '3',
    title: '糖尿病患者的运动指南',
    summary: '运动对于糖尿病患者的好处以及需要注意的事项，包括运动强度、时间和类型的建议。',
    category: '健康运动',
    viewCount: 194,
    likeCount: 42,
    imageUrl: '',
    publishDate: '2023-11-05',
    isRecommended: false
  }
];

Page({
  data: {
    loading: true,
    knowledgeList: [],
    currentPage: 1,
    pageSize: 10,
    totalPages: 0,
    totalItems: 0,
    categories: ['全部', '糖尿病预防', '健康运动', '饮食推荐', '食疗', '健康生活', '医学常识', '用药指南', '并发症预防'],
    currentCategory: '全部',
    searchValue: '',
    hasMore: true,
    loadingMore: false,
    // 添加模拟数据
    recommendedArticles: [
      {id: '1', title: '血糖管理的日常指南', description: '了解如何通过日常饮食和运动来有效管理血糖水平', category: '糖尿病预防', views: 328},
      {id: '2', title: '健康饮食：控制糖尿病的关键', description: '合理的饮食结构对于控制糖尿病至关重要', category: '饮食推荐', views: 267}
    ],
    latestArticles: [
      {id: '3', title: '糖尿病患者的运动指南', category: '健康运动', publishDate: '2023-11-05'},
      {id: '4', title: '血糖监测：什么时候测最准确', category: '医学常识', publishDate: '2023-10-22'}
    ],
    hotQuestions: [
      {id: '5', question: '糖尿病患者可以吃水果吗？', answer: '可以适量食用低糖水果，如草莓、柚子等，注意控制量和时间。'},
      {id: '6', question: '运动前后如何调整胰岛素剂量？', answer: '运动前可能需要减少胰岛素用量，具体调整应咨询医生。'}
    ],
    favorites: []
  },

  onLoad: function (options) {
    // 如果有传入特定分类，则设置为当前分类
    if (options.category) {
      this.setData({
        currentCategory: options.category
      });
    }
    
    // 加载健康知识
    this.loadKnowledgeList();
  },

  // 获取健康知识列表
  loadKnowledgeList: function (isLoadMore = false) {
    const { currentPage, pageSize, currentCategory, searchValue } = this.data;
    
    if (isLoadMore) {
      this.setData({ loadingMore: true });
    } else {
      this.setData({ loading: true });
    }
    
    // 准备查询参数
    const page = isLoadMore ? currentPage + 1 : 1;
    const category = currentCategory !== '全部' ? currentCategory : '';
    
    api.healthKnowledge.getKnowledgeList(page, pageSize, category, '', searchValue)
      .then(res => {
        const { data, pagination } = res;
        
        if (isLoadMore) {
          // 加载更多时，追加到现有列表
          this.setData({
            knowledgeList: [...this.data.knowledgeList, ...data],
            currentPage: page,
            totalPages: pagination.pages,
            totalItems: pagination.total,
            hasMore: page < pagination.pages,
            loadingMore: false
          });
        } else {
          // 首次加载或刷新时，替换整个列表
          this.setData({
            knowledgeList: data.length > 0 ? data : exampleKnowledgeData,
            currentPage: 1,
            totalPages: pagination.pages || 1,
            totalItems: pagination.total || exampleKnowledgeData.length,
            hasMore: 1 < (pagination.pages || 1),
            loading: false
          });
        }
        
        wx.stopPullDownRefresh();
      })
      .catch(err => {
        console.error('加载健康知识失败:', err);
        
        // 加载失败时使用示例数据
        if (!isLoadMore) {
          this.setData({
            knowledgeList: exampleKnowledgeData,
            currentPage: 1,
            totalPages: 1,
            totalItems: exampleKnowledgeData.length,
            hasMore: false,
            loading: false
          });
        } else {
          this.setData({
            loadingMore: false
          });
        }
        
        wx.showToast({
          title: '使用本地数据显示',
          icon: 'none'
        });
        
        wx.stopPullDownRefresh();
      });
  },

  // 切换分类
  onCategoryChange: function (e) {
    const category = e.currentTarget.dataset.category;
    this.setData({
      currentCategory: category,
      currentPage: 1
    });
    
    // 切换分类后重新加载数据
    this.loadKnowledgeList();
  },

  // 搜索
  onSearch: function (e) {
    this.setData({
      searchValue: e.detail.value
    });
    this.loadKnowledgeList();
  },

  // 清除搜索
  onClearSearch: function () {
    this.setData({
      searchValue: ''
    });
    this.loadKnowledgeList();
  },

  // 查看详情
  viewDetail: function (e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/healthKnowledgeDetail/healthKnowledgeDetail?id=${id}`
    });
  },

  // 查看文章
  viewArticle: function (e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/healthKnowledgeDetail/healthKnowledgeDetail?id=${id}`
    });
  },

  // 查看问题
  viewQuestion: function (e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/healthKnowledgeDetail/healthKnowledgeDetail?id=${id}`
    });
  },

  // 刷新推荐
  refreshRecommend: function () {
    // 这里可以实现刷新推荐内容的逻辑
    wx.showToast({
      title: '换一批功能开发中',
      icon: 'none'
    });
  },

  // 查看全部最新知识
  viewAllLatest: function () {
    this.setData({
      currentCategory: '全部',
      searchValue: ''
    });
    this.loadKnowledgeList();
  },

  // 查看全部问答
  viewAllQA: function () {
    wx.showToast({
      title: '问答功能开发中',
      icon: 'none'
    });
  },

  // 查看全部收藏
  viewAllFavorites: function () {
    wx.showToast({
      title: '收藏功能开发中',
      icon: 'none'
    });
  },

  // 移除收藏
  removeFavorite: function (e) {
    const id = e.currentTarget.dataset.id;
    wx.showToast({
      title: '取消收藏功能开发中',
      icon: 'none'
    });
  },

  // 下拉刷新
  onPullDownRefresh: function () {
    this.loadKnowledgeList();
  },

  // 上拉加载更多
  onReachBottom: function () {
    if (this.data.hasMore && !this.data.loadingMore) {
      this.loadKnowledgeList(true);
    }
  },

  // 分享
  onShareAppMessage: function () {
    return {
      title: '健康知识库 - 糖尿病管理助手',
      path: '/pages/healthKnowledge/healthKnowledge'
    };
  }
}) 